import java.util.*;

public class Answer3 {
    //删除相邻数字的最大分数
    //https://www.nowcoder.com/practice/3bcf72c738b6494bbe1ebe0ffde56152?tpId=230&tqId=40419&ru=/exam/oj

    // 动态规划
    static int N=(int)1e4+10;
    static int[] sum=new int[N];      // hash表，下标表示数据，存放的是 该数总和
    static int[] f=new int[N];     // 表示 i 位置选
    static int[] g=new int[N];     // 表示 i 位置不选
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        int a=0;
        for(int i=0;i<n;i++){
            a=in.nextInt();
            sum[a]+=a;
        }

        for(int i=1;i<N;i++){
            f[i]=g[i-1]+sum[i];
            g[i]=Math.max(f[i-1],g[i-1]);
        }

        System.out.println(Math.max(f[N-1],g[N-1]));
    }
}



/*

// 我这里 写的代码有问题，只能选一次进行删除

import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Answer3 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int n = in.nextInt();
            int[] arr = new int[n];
            int[] brr = new int[n];
            int k = 0;
// 统计出现的各个数字的次数
            Map<Integer, Integer> hash = new HashMap<>();
            for (int i = 0; i < n; i++) {
                arr[i] = in.nextInt();
                hash.put(arr[i], hash.getOrDefault(arr[i], 0) + 1);
            }
            Arrays.sort(arr);
            for (int i = 0; i < n; i++) {
                if (k != 0) {
// 记录出现的各种数字
                    if (brr[k - 1] != arr[i]) {
                        brr[k++] = arr[i];
                    }
                } else {
                    brr[k++] = arr[i];
                }
            }
            int sum = 0;
            for (int i = 0; i < k; i++) {
                int ret = 0;
                ret += sumSelect(brr, hash, i, k);
                sum = Math.max(sum, ret);
            }
            System.out.println(sum);
        }
    }
    public static int sumSelect(int[] brr, Map<Integer, Integer> hash, int a,
                                int k) {
        int ret = 0;
        for (int i = 0; i < k; i++) {
            if (brr[i] != brr[a] + 1 && brr[i] != brr[a] - 1 ) {
                ret += hash.get(brr[i]) * brr[i];
            }
        }
        return ret;
    }
}
*/
